/*
ProgressBar.hpp
--------------

Par Bréhaut Vincent le 10/05/2011

Rôle: Créer, afficher et gérer les barres de progression
*/

#ifndef DEF_PROGRESSBAR
#define DEF_PROGRESSBAR

#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <vector>
#include <sstream>
#include "Widget.hpp"
#include "../Engine.hpp"

namespace GUI
{
    class ProgressBar : public Widget
    {
        public:
            ProgressBar(Engine &Moteur, int value=0, int max_value=100);

            void SetValue(int value);
            int GetValue();

            void SetMaxValue(int max_value);
            int GetMaxValue();

            bool IsMax();
            bool IsMin();
            sf::Text& GetText();

            virtual void Afficher();
            virtual void UpdateEvent();

        protected:
            int m_value; // Valeur actuelle de la progress bar
            int m_max_value; // Valeur maximum pouvant être atteinte
            sf::Font m_font;
            sf::Text m_pourcentage; // Texte afficher à l'écran, correspondant au pourcentage

            sf::Sprite m_sprite; // Images de la progress bar
            std::vector<sf::IntRect> m_rects; // Rects de la progress bar
    };
}

#endif
